﻿using SmartSiteManagementSystem.Models.ProjectManage;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;

namespace SmartSiteManagementSystem.IServices
{
    public interface IProjectManageService
    {
        #region ProjectInfo
        /// <summary>
        /// 
        /// </summary>
        /// <param name="projectId"></param>
        /// <returns></returns>
        ProjectInfo GetProjectInfoById(int projectId);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="projectInfo"></param>
        /// <returns></returns>
        bool UpdateProjectInfo(ProjectInfo projectInfo);


        /// <summary>
        /// 
        /// </summary>
        /// <param name="projectInfo"></param>
        /// <returns></returns>
        int InsertProjectInfo(ProjectInfo projectInfo);



        /// <summary>
        /// 
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        int GetProjectInfoListCount(Hashtable param);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="param"></param>
        /// <param name="orderBy"></param>
        /// <param name="first"></param>
        /// <param name="rows"></param>
        /// <returns></returns>
        IList<ProjectInfo> GetProjectInfoList(Hashtable param, string orderBy, int first, int rows);
        #endregion


        #region DayProjectTypeInfo
        /// <summary>
        /// 
        /// </summary>
        /// <param name="dayProjectTypeId"></param>
        /// <returns></returns>
        DayProjectTypeInfo GetDayProjectTypeInfoById(int dayProjectTypeId);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="dayProjectTypeInfo"></param>
        /// <returns></returns>
        bool UpdateDayProjectTypeInfo(DayProjectTypeInfo dayProjectTypeInfo);


        /// <summary>
        /// 
        /// </summary>
        /// <param name="dayProjectTypeInfo"></param>
        /// <returns></returns>
        int InsertDayProjectTypeInfo(DayProjectTypeInfo dayProjectTypeInfo);



        /// <summary>
        /// 
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        int GetDayProjectTypeInfoListCount(Hashtable param);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="param"></param>
        /// <param name="orderBy"></param>
        /// <param name="first"></param>
        /// <param name="rows"></param>
        /// <returns></returns>
        IList<DayProjectTypeInfo> GetDayProjectTypeInfoList(Hashtable param, string orderBy, int first, int rows);
        #endregion


        #region DayProjectInfo
        /// <summary>
        /// 
        /// </summary>
        /// <param name="dayProjectId"></param>
        /// <returns></returns>
        DayProjectInfo GetDayProjectInfoById(int dayProjectId);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="dayProjectInfo"></param>
        /// <returns></returns>
        bool UpdateDayProjectInfo(DayProjectInfo dayProjectInfo);


        /// <summary>
        /// 
        /// </summary>
        /// <param name="dayProjectInfo"></param>
        /// <returns></returns>
        int InsertDayProjectInfo(DayProjectInfo dayProjectInfo);



        /// <summary>
        /// 
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        int GetDayProjectInfoListCount(Hashtable param);

        /// <summary>
        /// 
        /// </summary>
        /// <param name="param"></param>
        /// <param name="orderBy"></param>
        /// <param name="first"></param>
        /// <param name="rows"></param>
        /// <returns></returns>
        IList<DayProjectInfo> GetDayProjectInfoList(Hashtable param, string orderBy, int first, int rows);

        /// <summary>
        /// 获取任务状态 0  任务未下发 5 任务已分配 10 任务已下发 15 任务已完成
        /// </summary>
        /// <param name="statusType"></param>
        /// <returns></returns>
        string GetStatusTypeStr(int statusType);
        #endregion
    }
}
